﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Siav
{
    public partial class frmPedidosEntregues : BaseBuscas
    {
        public frmPedidosEntregues()
        {
            InitializeComponent();
        }
        SiavEntities Entidades = new SiavEntities();
        public string CodigoSelecionado = "-1";
        public string FormClientes = "";
        private IEnumerable<PedidoCabeca> Selecao;

        public string Tipo(string pParametros)
        {
            string Retorno = "";
            switch (pParametros)
            {
                case "PP":
                    Retorno = "P";
                    break;
                case "PF":
                    Retorno = "F";
                    break;
                case "PO":
                    Retorno = "O";
                    break;
                case "":
                    Retorno = "";
                    break;
                case "PE":
                    Retorno = "E";
                    break;
            }
            return Retorno;
        }
        public void BuscarPedidos(string pParametro)
        {
            lstResultados.Items.Clear();
            try
            {
                // string Retorno = "";
                //string ValorB = "";
                pProgress.Value = 5;
                var SPedido = (from pe in Entidades.PedidoCabeca
                               where pe.Clientes.NomeFantasia.Contains(pParametro) || pe.Clientes.RazaoSocial.Contains(pParametro) || pe.Clientes.CPF_CNPJ.Contains(pParametro) || pe.Clientes.Telefone.Contains(pParametro)
                               orderby pe.CodigoPedido descending
                               select pe).ToList();
                Selecao = SPedido.Where(P => P.Status == "E");
                pProgress.Value = 50;

                foreach (PedidoCabeca Ped in Selecao)
                {
                    string RetornoNFE;

                    ListViewItem item = new ListViewItem();
                    //if (Ped.Status == "F")
                    //{
                    //  item.BackColor = Color.YellowGreen;
                    //}
                    /*if (Ped.Status == "P")
                    {
                        item.BackColor = Color.Yellow;
                    }
                     * */
                    if (Ped.ChaveNFe == null)
                    {
                        RetornoNFE = "NÃO";
                    }
                    else
                    {
                        RetornoNFE = "SIM";
                    }
                    item.Text = Ped.CodigoPedido.ToString();
                    item.SubItems.Add(Ped.DataHoraPedido.ToShortDateString());
                    item.SubItems.Add(Ped.Entregue.Value.ToShortDateString());
                    item.SubItems.Add(Ped.Clientes.NomeFantasia + " " + Ped.Clientes.RazaoSocial);
                    item.SubItems.Add(Ped.Clientes.CPF_CNPJ);
                    if (RetornoNFE == "SIM")
                    {
                        item.BackColor = Color.DarkOrange;
                    }
                    item.SubItems.Add(RetornoNFE);
                    lstResultados.Items.Add(item);
                }
                pProgress.Value = 100;
            }
            catch
            {

            }


        }

        private void frmPedidosEntregues_Load(object sender, EventArgs e)
        {
            BuscarPedidos(txtParametro.Text);
        }

        private void txtParametro_TextChanged(object sender, EventArgs e)
        {
            if (txtParametro.TextLength > 0)
            {
                BuscarPedidos(txtParametro.Text);
            }
        }

        private void btnImprimirFicha_Click(object sender, EventArgs e)
        {
            try
            {
                int CodigoPedido = int.Parse(lstResultados.SelectedItems[0].Text);
                frmFichaPedido ficha = new frmFichaPedido();
                ficha.CodigoPedido = CodigoPedido;
                ficha.ShowDialog();
                ficha.Dispose();
            }
            catch
            {
                MessageBox.Show("Primeiro selecione o pedido na lista", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnEmitirNota_Click(object sender, EventArgs e)
        {
            try
            {
                if (lstResultados.SelectedItems[0].Text != null)
                {
                    frmEmiteNFe NFe = new frmEmiteNFe();
                    NFe.CodigoPedido = lstResultados.SelectedItems[0].Text;
                    NFe.ShowDialog();
                }
            }
            catch
            {
                MessageBox.Show("Selecione um pedido da lista primeiro", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }
}
